package com.catazy.ocrdemo.manager

import com.google.gson.Gson

/**
 * 作者: Tao
 * 日期: 2024/2/21
 * 时间: 16:24
 * 描述: Gson管理类
 */
class GsonManager {

    companion object {
        val instance: GsonManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
            GsonManager()
        }
    }

    private var mGson: Gson? = null

    /**
     * 对象转json
     * @param any 对象
     * @return json
     */
    fun toJson(any: Any?): String {
        return createGson().toJson(any)
    }

    /**
     * json转对象
     * @param json json
     * @param classOfT 类
     * @return 对象
     */
    fun <T> fromJson(json: String?, classOfT: Class<T>?): T {
        return createGson().fromJson(json, classOfT)
    }

    /**
     * 创建Gson
     * @return Gson
     */
    private fun createGson(): Gson {
        if (mGson == null) {
            mGson = Gson()
        }
        return mGson!!
    }
}